<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../style.css" type="text/css" media="screen">
<link rel="stylesheet" href="../../print.css" type="text/css" media="print">
<meta content="ProgrammaticSkin,mx.skins.ProgrammaticSkin,initialized,measuredHeight,measuredWidth,nestLevel,processedDescriptors,styleName,updateCompletePendingFlag,drawRoundRect,getStyle,horizontalGradientMatrix,invalidateDisplayList,invalidateProperties,invalidateSize,move,rotatedGradientMatrix,setActualSize,styleChanged,updateDisplayList,validateDisplayList,validateNow,validateProperties,validateSize,verticalGradientMatrix" name="keywords">
<title>mx.skins.ProgrammaticSkin</title>
</head>
<body>
<script type="text/javascript" language="javascript" src="../../asdoc.js"></script><script type="text/javascript" language="javascript" src="../../cookies.js"></script><script type="text/javascript" language="javascript">
<!--
				asdocTitle = 'ProgrammaticSkin - Zentrum virtUOS: virtPresenter';
				var baseRef = '../../';
				window.onload = configPage;
			--></script>
<table style="display:none" id="titleTable" cellspacing="0" cellpadding="0" class="titleTable">
<tr>
<td align="left" class="titleTableTitle">virtPresenter AsDoc</td><td align="right" class="titleTableTopNav"><a onclick="loadClassListFrame('../../all-classes.html')" href="../../package-summary.html">All&nbsp;Packages</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../../all-classes.html')" href="../../class-summary.html">All&nbsp;Classes</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../../index-list.html')" href="../../all-index-A.html">Index</a>&nbsp;|&nbsp;<a href="../../index.html?mx/skins/ProgrammaticSkin.html&amp;mx/skins/class-list.html" id="framesLink1">Frames</a><a onclick="parent.location=document.location" href="" style="display:none" id="noFramesLink1">No&nbsp;Frames</a></td><td rowspan="3" align="right" class="titleTableLogo"><img alt="Adobe Logo" title="Adobe Logo" class="logoImage" src="../../images/logo.jpg"></td>
</tr>
<tr class="titleTableRow2">
<td align="left" id="subTitle" class="titleTableSubTitle">Class&nbsp;ProgrammaticSkin</td><td align="right" id="subNav" class="titleTableSubNav"><a href="#propertySummary">Properties</a>&nbsp;| <a href="#methodSummary">Methods</a></td>
</tr>
<tr class="titleTableRow3">
<td colspan="2">&nbsp;</td>
</tr>
</table>
<script type="text/javascript" language="javascript">
<!--
if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("Class ProgrammaticSkin"); titleBar_setSubNav(false,true,false,false,false,false,true,false,false,false,false,false,false,false);}
--></script>
<div class="MainContent">
<table cellspacing="0" cellpadding="0" class="classHeaderTable">
<tr>
<td class="classHeaderTableLabel">Package</td><td><a onclick="javascript:loadClassListFrame('class-list.html')" href="package-detail.html">mx.skins</a></td>
</tr>
<tr>
<td class="classHeaderTableLabel">Class</td><td class="classSignature">public class ProgrammaticSkin</td>
</tr>
<tr>
<td class="classHeaderTableLabel">Inheritance</td><td class="inheritanceList">ProgrammaticSkin <img class="inheritArrow" alt="Inheritance" title="Inheritance" src="../../images/inherit-arrow.gif"> <a href="../core/FlexShape.html">FlexShape</a> <img class="inheritArrow" alt="Inheritance" title="Inheritance" src="../../images/inherit-arrow.gif"> flash.display.Shape</td>
</tr>
<tr>
<td class="classHeaderTableLabel">Implements</td><td><a href="../core/IFlexDisplayObject.html">IFlexDisplayObject</a>, <a href="../core/IInvalidating.html">IInvalidating</a>, <a href="../managers/ILayoutManagerClient.html">ILayoutManagerClient</a>, <a href="../core/IProgrammaticSkin.html">IProgrammaticSkin</a>, <a href="../styles/ISimpleStyleClient.html">ISimpleStyleClient</a></td>
</tr>
<tr>
<td class="classHeaderTableLabel">Subclasses</td><td><a href="halo/ListDropIndicator.html">ListDropIndicator</a></td>
</tr>
</table>
<p></p>
  This class is the base class for skin elements
  which draw themselves programmatically.
 <p></p>
<br>
<hr>
</div>
<a name="propertySummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Public Properties</div>
<table id="summaryTableProperty" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Property</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#initialized">initialized</a> : Boolean<div class="summaryTableDescription">
      A flag that determines if an object has been through all three phases
      of layout: commitment, measurement, and layout (provided that any were required).</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#measuredHeight">measuredHeight</a> : Number<div class="summaryTableDescription">[read-only]
   The measured height of this object.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#measuredWidth">measuredWidth</a> : Number<div class="summaryTableDescription">[read-only]
   The measured width of this object.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#nestLevel">nestLevel</a> : int<div class="summaryTableDescription">
      Depth of this object in the containment hierarchy.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#processedDescriptors">processedDescriptors</a> : Boolean<div class="summaryTableDescription">
      Set to <code>true</code> after immediate or deferred child creation, 
      depending on which one happens.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#styleName">styleName</a> : Object<div class="summaryTableDescription">
      A parent component used to obtain style values.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#updateCompletePendingFlag">updateCompletePendingFlag</a> : Boolean<div class="summaryTableDescription">
   A flag that determines if an object has been through all three phases
   of layout validation (provided that any were required).</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
</table>
</div>
<a name="methodSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Public Methods</div>
<div class="showHideLinks">
<div class="hideInheritedMethod" id="hideInheritedMethod">
<a onclick="javascript:setInheritedVisible(false,'Method');" href="#methodSummary" class="showHideLink"><img src="../../images/expanded.gif" class="showHideLinkImage"> Hide Inherited Public Methods</a>
</div>
<div class="showInheritedMethod" id="showInheritedMethod">
<a onclick="javascript:setInheritedVisible(true,'Method');" href="#methodSummary" class="showHideLink"><img src="../../images/collapsed.gif" class="showHideLinkImage"> Show Inherited Public Methods</a>
</div>
</div>
<table id="summaryTableMethod" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#ProgrammaticSkin()">ProgrammaticSkin</a>()</div>
<div class="summaryTableDescription">
   Constructor.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#getStyle()">getStyle</a>(styleProp:String):*</div>
<div class="summaryTableDescription">
      Returns the value of the specified style property.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#invalidateDisplayList()">invalidateDisplayList</a>():void</div>
<div class="summaryTableDescription">
      Marks a component so that its <code>updateDisplayList()</code>
      method gets called during a later screen update.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#invalidateProperties()">invalidateProperties</a>():void</div>
<div class="summaryTableDescription">
   
   Calling this method results in a call to the component's
   <code>validateProperties()</code> method
   before the display list is rendered.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#invalidateSize()">invalidateSize</a>():void</div>
<div class="summaryTableDescription">
   
   Calling this method results in a call to the component's
   <code>validateSize()</code> method
   before the display list is rendered.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#move()">move</a>(x:Number, y:Number):void</div>
<div class="summaryTableDescription">
   Moves this object to the specified x and y coordinates.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#setActualSize()">setActualSize</a>(newWidth:Number, newHeight:Number):void</div>
<div class="summaryTableDescription">
   Sets the height and width of this object.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#styleChanged()">styleChanged</a>(styleProp:String):void</div>
<div class="summaryTableDescription">
   Whenever any style changes, redraw this skin.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="hideInheritedMethod">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="../core/FlexShape.html#toString()">toString</a>():String</div>
<div class="summaryTableDescription">
   Returns a string indicating the location of this object
   within the hierarchy of DisplayObjects in the Application.</div>
</td><td class="summaryTableOwnerCol"><a href="../core/FlexShape.html">FlexShape</a></td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#validateDisplayList()">validateDisplayList</a>():void</div>
<div class="summaryTableDescription">
   This function is called by the LayoutManager
   when it's time for this control to draw itself.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#validateNow()">validateNow</a>():void</div>
<div class="summaryTableDescription">
   Validate and update the properties and layout of this object
   and redraw it, if necessary.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#validateProperties()">validateProperties</a>():void</div>
<div class="summaryTableDescription">
   This function is an empty stub so that ProgrammaticSkin
   can implement the ILayoutManagerClient  interface.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#validateSize()">validateSize</a>(recursive:Boolean = false):void</div>
<div class="summaryTableDescription">
   This function is an empty stub so that ProgrammaticSkin
   can implement the ILayoutManagerClient  interface.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
</table>
</div>
<a name="protectedMethodSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Protected Methods</div>
<table id="summaryTableProtectedMethod" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#drawRoundRect()">drawRoundRect</a>(x:Number, y:Number, width:Number, height:Number, cornerRadius:Object = null, color:Object = null, alpha:Object = null, gradientMatrix:Matrix = null, gradientType:String = "linear", gradientRatios:Array = null, hole:Object = null):void</div>
<div class="summaryTableDescription">
   Programatically draws a rectangle into this skin's Graphics object.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#horizontalGradientMatrix()">horizontalGradientMatrix</a>(x:Number, y:Number, width:Number, height:Number):Matrix</div>
<div class="summaryTableDescription">
   Utility function to create a horizontal gradient matrix.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#rotatedGradientMatrix()">rotatedGradientMatrix</a>(x:Number, y:Number, width:Number, height:Number, rotation:Number):Matrix</div>
<div class="summaryTableDescription">
   Utility function to create a rotated gradient matrix.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#updateDisplayList()">updateDisplayList</a>(unscaledWidth:Number, unscaledHeight:Number):void</div>
<div class="summaryTableDescription">
   Programmatically draws the graphics for this skin.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#verticalGradientMatrix()">verticalGradientMatrix</a>(x:Number, y:Number, width:Number, height:Number):Matrix</div>
<div class="summaryTableDescription">
   Utility function to create a vertical gradient matrix.</div>
</td><td class="summaryTableOwnerCol">ProgrammaticSkin</td>
</tr>
</table>
</div>
<script type="text/javascript" language="javascript">
<!--
showHideInherited();
--></script>
<div class="MainContent">
<a name="propertyDetail"></a>
<div class="detailSectionHeader">Property detail</div>
<a name="initialized"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">initialized</td><td class="detailHeaderType">property</td>
</tr>
</table>
<div class="detailBody">
<code>initialized:Boolean</code>&nbsp;&nbsp;[read-write]<p>
      A flag that determines if an object has been through all three phases
      of layout: commitment, measurement, and layout (provided that any were required).
     </p><span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get initialized():Boolean</code>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set initialized(value:Boolean):void</code>
<br>
</div>
<a name="measuredHeight"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">measuredHeight</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>measuredHeight:Number</code>&nbsp;&nbsp;[read-only]<p>
   The measured height of this object.
   This should be overridden by subclasses to return the preferred height for
   the skin.
     </p><span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get measuredHeight():Number</code>
<br>
</div>
<a name="measuredWidth"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">measuredWidth</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>measuredWidth:Number</code>&nbsp;&nbsp;[read-only]<p>
   The measured width of this object.
   This should be overridden by subclasses to return the preferred width for
   the skin.
     </p><span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get measuredWidth():Number</code>
<br>
</div>
<a name="nestLevel"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">nestLevel</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>nestLevel:int</code>&nbsp;&nbsp;[read-write]<p>
      Depth of this object in the containment hierarchy.
      This number is used by the measurement and layout code.
      The value is 0 if this component is not on the DisplayList.
     </p><span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get nestLevel():int</code>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set nestLevel(value:int):void</code>
<br>
</div>
<a name="processedDescriptors"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">processedDescriptors</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>processedDescriptors:Boolean</code>&nbsp;&nbsp;[read-write]<p>
      Set to <code>true</code> after immediate or deferred child creation, 
      depending on which one happens. For a Container object, it is set 
      to <code>true</code> at the end of 
      the <code>createComponentsFromDescriptors()</code> method, 
      meaning after the Container object creates its children from its child descriptors. 
      
      </p><p>For example, if an Accordion container uses deferred instantiation, 
      the <code>processedDescriptors</code> property for the second pane of 
      the Accordion container does not become <code>true</code> until after 
      the user navigates to that pane and the pane creates its children. 
      But, if the Accordion had set the <code>creationPolicy</code> property 
      to <code>"all"</code>, the <code>processedDescriptors</code> property 
      for its second pane is set to <code>true</code> during application startup.</p>
      
      <p>For classes that are not containers, which do not have descriptors, 
      it is set to <code>true</code> after the <code>createChildren()</code> 
      method creates any internal component children.</p>
     <span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get processedDescriptors():Boolean</code>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set processedDescriptors(value:Boolean):void</code>
<br>
</div>
<a name="styleName"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">styleName</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>styleName:Object</code>&nbsp;&nbsp;[read-write]<p>
      A parent component used to obtain style values. This is typically set to the
      component that created this skin.
     </p><span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get styleName():Object</code>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set styleName(value:Object):void</code>
<br>
</div>
<a name="updateCompletePendingFlag"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">updateCompletePendingFlag</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>updateCompletePendingFlag:Boolean</code>&nbsp;&nbsp;[read-write]<p>
   A flag that determines if an object has been through all three phases
   of layout validation (provided that any were required).
     </p><span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get updateCompletePendingFlag():Boolean</code>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set updateCompletePendingFlag(value:Boolean):void</code>
<br>
</div>
<a name="constructorDetail"></a>
<div class="detailSectionHeader">Constructor detail</div>
<a name="ProgrammaticSkin()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">ProgrammaticSkin</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">constructor</td>
</tr>
</table>
<div class="detailBody">
<code>public function ProgrammaticSkin()</code><p>
   Constructor.
  </p></div>
<a name="methodDetail"></a>
<div class="detailSectionHeader">Method detail</div>
<a name="drawRoundRect()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">drawRoundRect</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td>
</tr>
</table>
<div class="detailBody">
<code>protected function drawRoundRect(x:Number, y:Number, width:Number, height:Number, cornerRadius:Object = null, color:Object = null, alpha:Object = null, gradientMatrix:Matrix = null, gradientType:String = "linear", gradientRatios:Array = null, hole:Object = null):void</code><p>
   Programatically draws a rectangle into this skin's Graphics object.
     </p><p>The rectangle can have rounded corners.
   Its edges are stroked with the current line style
   of the Graphics object.
   It can have a solid color fill, a gradient fill, or no fill.
   A solid fill can have an alpha transparency.
   A gradient fill can be linear or radial. You can specify
   up to 15 colors and alpha values at specified points along
   the gradient, and you can specify a rotation angle
   or transformation matrix for the gradient.
   Finally, the rectangle can have a rounded rectangular hole
   carved out of it.</p>
     <p>This versatile rectangle-drawing routine is used by many skins.
   It calls the <code>drawRect()</code> or
   <code>drawRoundRect()</code>
   methods (in the flash.display.Graphics class) to draw into this
   skin's Graphics object.</p>
    <span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">x</span>:Number</code> &mdash; Horizontal position of upper-left corner
   of rectangle within this skin.
    </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">y</span>:Number</code> &mdash; Vertical position of upper-left corner
   of rectangle within this skin.
    </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">width</span>:Number</code> &mdash; Width of rectangle, in pixels.
    </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">height</span>:Number</code> &mdash; Height of rectangle, in pixels.
    </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">cornerRadius</span>:Object</code> (default = <code>null</code>)<code></code> &mdash; Corner radius/radii of rectangle.
   Can be <code>null</code>, a Number, or an Object.
   If it is <code>null</code>, it specifies that the corners should be square
   rather than rounded.
   If it is a Number, it specifies the same radius, in pixels,
   for all four corners.
   If it is an Object, it should have properties named
   <code>tl</code>, <code>tr</code>, <code>bl</code>, and
   <code>br</code>, whose values are Numbers specifying
   the radius, in pixels, for the top left, top right,
   bottom left, and bottom right corners.
   For example, you can pass a plain Object such as
   <code>{ tl: 5, tr: 5, bl: 0, br: 0 }</code>.
   The default value is null (square corners).
    </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">color</span>:Object</code> (default = <code>null</code>)<code></code> &mdash; The RGB color(s) for the fill.
   Can be <code>null</code>, a uint, or an Array.
   If it is <code>null</code>, the rectangle not filled.
   If it is a uint, it specifies an RGB fill color.
   For example, pass <code>0xFF0000</code> to fill with red.
   If it is an Array, it should contain uints
   specifying the gradient colors.
   For example, pass <code>[ 0xFF0000, 0xFFFF00, 0x0000FF ]</code>
   to fill with a red-to-yellow-to-blue gradient.
   You can specify up to 15 colors in the gradient.
   The default value is null (no fill).
    </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">alpha</span>:Object</code> (default = <code>null</code>)<code></code> &mdash; Alpha value(s) for the fill.
   Can be null, a Number, or an Array.
   This argument is ignored if <code>color</code> is null.
   If <code>color</code> is a uint specifying an RGB fill color,
   then <code>alpha</code> should be a Number specifying
   the transparency of the fill, where 0.0 is completely transparent
   and 1.0 is completely opaque.
   You can also pass null instead of 1.0 in this case
   to specify complete opaqueness.
   If <code>color</code> is an Array specifying gradient colors,
   then <code>alpha</code> should be an Array of Numbers, of the
   same length, that specifies the corresponding alpha values
   for the gradient.
   In this case, the default value is <code>null</code> (completely opaque).
        </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">gradientMatrix</span>:Matrix</code> (default = <code>null</code>)<code></code> &mdash; Matrix object used for the gradient fill. 
      The utility methods <code>horizontalGradientMatrix()</code>, 
      <code>verticalGradientMatrix()</code>, and
      <code>rotatedGradientMatrix()</code> can be used to create the value for 
      this parameter.
    </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">gradientType</span>:String</code> (default = "<code>linear</code>")<code></code> &mdash; Type of gradient fill. The possible values are
   <code>GradientType.LINEAR</code> or <code>GradientType.RADIAL</code>.
   (The GradientType class is in the package flash.display.)
    </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">gradientRatios</span>:Array</code> (default = <code>null</code>)<code></code> &mdash; (optional default [0,255])
   Specifies the distribution of colors. The number of entries must match
   the number of colors defined in the <code>color</code> parameter.
   Each value defines the percentage of the width where the color is 
   sampled at 100%. The value 0 represents the left-hand position in 
   the gradient box, and 255 represents the right-hand position in the 
   gradient box. 
    </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">hole</span>:Object</code> (default = <code>null</code>)<code></code> &mdash; (optional) A rounded rectangular hole
   that should be carved out of the middle
   of the otherwise solid rounded rectangle
   { x: #, y: #, w: #, h: #, r: # or { br: #, bl: #, tl: #, tr: # } }
     </td>
</tr>
</table>
<p>
<span class="label">See also</span>
</p>
<div class="seeAlso">flash.display.Graphics.beginGradientFill()</div>
</div>
<a name="getStyle()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">getStyle</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function getStyle(styleProp:String):*</code><p>
      Returns the value of the specified style property.
           </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">styleProp</span>:String</code> &mdash; Name of the style property.
           </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code>*</code> &mdash; The style value. This can be any type of object that style properties can be, such as 
      int, Number, String, etc.
     </td>
</tr>
</table>
</div>
<a name="horizontalGradientMatrix()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">horizontalGradientMatrix</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>protected function horizontalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix</code><p>
   Utility function to create a horizontal gradient matrix.
     </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">x</span>:Number</code> &mdash; The left edge of the gradient.
     </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">y</span>:Number</code> &mdash; The top edge of the gradient.
     </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">width</span>:Number</code> &mdash; The width of the gradient.
     </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">height</span>:Number</code> &mdash; The height of the gradient.
     </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code>Matrix</code> &mdash; The horizontal gradient matrix. This is a temporary
   object that should only be used for a single subsequent call
   to the <code>drawRoundRect()</code> method.
  </td>
</tr>
</table>
</div>
<a name="invalidateDisplayList()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">invalidateDisplayList</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function invalidateDisplayList():void</code><p>
      Marks a component so that its <code>updateDisplayList()</code>
      method gets called during a later screen update.
           </p><p>Invalidation is a useful mechanism for eliminating duplicate
      work by delaying processing of changes to a component until a
      later screen update.
      For example, if you want to change the width and height,
      it would be wasteful to update the component immediately after you
      change the width and then update again with the new height.
      It is more efficient to change both properties and then render
      the component with its new size once.</p>
           <p>Invalidation methods rarely get called.
      In general, setting a property on a component automatically
      calls the appropriate invalidation method.</p>
     </div>
<a name="invalidateProperties()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">invalidateProperties</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function invalidateProperties():void</code><p>
   
   Calling this method results in a call to the component's
   <code>validateProperties()</code> method
   before the display list is rendered.
     </p><p>For components that extend UIComponent, this implies
   that <code>commitProperties()</code> is called.</p>
  </div>
<a name="invalidateSize()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">invalidateSize</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function invalidateSize():void</code><p>
   
   Calling this method results in a call to the component's
   <code>validateSize()</code> method
   before the display list is rendered.
     </p><p>For components that extend UIComponent, this implies
   that <code>measure()</code> is called, unless the component
   has both <code>explicitWidth</code> and <code>explicitHeight</code>
   set.</p>
  </div>
<a name="move()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">move</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function move(x:Number, y:Number):void</code><p>
   Moves this object to the specified x and y coordinates.
          </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">x</span>:Number</code> &mdash; The horizontal position, in pixels.
          </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">y</span>:Number</code> &mdash; The vertical position, in pixels.
  </td>
</tr>
</table>
</div>
<a name="rotatedGradientMatrix()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">rotatedGradientMatrix</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>protected function rotatedGradientMatrix(x:Number, y:Number, width:Number, height:Number, rotation:Number):Matrix</code><p>
   Utility function to create a rotated gradient matrix.
     </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">x</span>:Number</code> &mdash; The left edge of the gradient.
     </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">y</span>:Number</code> &mdash; The top edge of the gradient.
     </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">width</span>:Number</code> &mdash; The width of the gradient.
     </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">height</span>:Number</code> &mdash; The height of the gradient.
     </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">rotation</span>:Number</code> &mdash; The amount to rotate, in degrees.
     </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code>Matrix</code> &mdash; The horizontal gradient matrix. This is a temporary
   object that should only be used for a single subsequent call
   to the <code>drawRoundRect()</code> method.
  </td>
</tr>
</table>
</div>
<a name="setActualSize()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">setActualSize</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function setActualSize(newWidth:Number, newHeight:Number):void</code><p>
   Sets the height and width of this object.
          </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">newWidth</span>:Number</code> &mdash; The width, in pixels, of this object.
          </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">newHeight</span>:Number</code> &mdash; The height, in pixels, of this object.
  </td>
</tr>
</table>
</div>
<a name="styleChanged()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">styleChanged</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function styleChanged(styleProp:String):void</code><p>
   Whenever any style changes, redraw this skin.
   Subclasses can override this method
   and perform a more specific test before calling invalidateDisplayList().
     </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">styleProp</span>:String</code> &mdash; The name of the style property that changed, or null
   if all styles have changed.
  </td>
</tr>
</table>
</div>
<a name="updateDisplayList()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">updateDisplayList</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void</code><p>
   Programmatically draws the graphics for this skin.
     </p><p>Subclasses should override this method and include calls
   to methods such as <code>graphics.moveTo()</code> and
   <code>graphics.lineTo()</code>.</p>
     <p>This occurs before any scaling from sources
   such as user code or zoom effects. 
   The component is unaware of the scaling that takes place later.</p> 
            <span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">unscaledWidth</span>:Number</code> &mdash;   The width, in pixels, of this object before any scaling.
            </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">unscaledHeight</span>:Number</code> &mdash;   The height, in pixels, of this object before any scaling.
  </td>
</tr>
</table>
</div>
<a name="validateDisplayList()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">validateDisplayList</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function validateDisplayList():void</code><p>
   This function is called by the LayoutManager
   when it's time for this control to draw itself.
   The actual drawing happens in the <code>updateDisplayList</code>
   function, which is called by this function.
  </p></div>
<a name="validateNow()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">validateNow</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function validateNow():void</code><p>
   Validate and update the properties and layout of this object
   and redraw it, if necessary.
  </p></div>
<a name="validateProperties()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">validateProperties</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function validateProperties():void</code><p>
   This function is an empty stub so that ProgrammaticSkin
   can implement the ILayoutManagerClient  interface.
   Skins do not call <code>LayoutManager.invalidateProperties()</code>, 
   which would normally trigger a call to this method.
  </p></div>
<a name="validateSize()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">validateSize</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function validateSize(recursive:Boolean = false):void</code><p>
   This function is an empty stub so that ProgrammaticSkin
   can implement the ILayoutManagerClient  interface.
   Skins do not call <code>LayoutManager.invalidateSize()</code>, 
   which would normally trigger a call to this method.
                 </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">recursive</span>:Boolean</code> (default = <code>false</code>)<code></code> &mdash; Determines whether children of this skin are validated. 
  </td>
</tr>
</table>
</div>
<a name="verticalGradientMatrix()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">verticalGradientMatrix</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>protected function verticalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix</code><p>
   Utility function to create a vertical gradient matrix.
     </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">x</span>:Number</code> &mdash; The left edge of the gradient.
     </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">y</span>:Number</code> &mdash; The top edge of the gradient.
     </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">width</span>:Number</code> &mdash; The width of the gradient.
     </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">height</span>:Number</code> &mdash; The height of the gradient.
     </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code>Matrix</code> &mdash; The horizontal gradient matrix. This is a temporary
   object that should only be used for a single subsequent call
   to the <code>drawRoundRect()</code> method.
  </td>
</tr>
</table>
</div>
<br>
<br>
<hr>
<br>
<p></p>
<center class="copyright"> 
</center>
</div>
</body>
</html>
<!-- -->
